'use strict';

module.exports = app => {
  const { INTEGER, STRING, ENUM } = app.Sequelize;

  // 订单商品
  const OrderItem = app.model.define('orderItem', {
    // 哈希值
    imageHash: { type: STRING(28) },
    // 商品标题
    title: { type: STRING, allowNull: false },
    // 下单价格
    price: { type: INTEGER, allowNull: false },
    // 下单数量
    number: { type: INTEGER, allowNull: false },
    // 状态
    status: {
      type: ENUM,
      values: [ 'unpaid', 'completed' ],
      allowNull: false,
      defaultValue: 'unpaid',
    },
  });

  OrderItem.associate = function() {
    // 门店
    OrderItem.belongsTo(app.model.Store);
    // 订单
    OrderItem.belongsTo(app.model.Order);
    // 商品
    OrderItem.belongsTo(app.model.Item);
    // 主图
    OrderItem.belongsTo(app.model.File, { as: 'image' });
  };

  return OrderItem;
};
